package br.org.acessobrasil.portal.persistencia;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

import br.org.acessobrasil.portal.modelo.ItemConteudo;
import br.org.acessobrasil.portal.modelo.Pagina;

//TODO retirar esta chepa
public interface ItemConteudoDao {

	public abstract void create(ItemConteudo itemConteudo) throws Exception;

	/**
	 * Read L&ecirc; um item de conteudo
	 * 
	 * @param nu_item_conteudo
	 * @return ItemConteudo
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public abstract ItemConteudo getItemConteudo(Long nu_item_conteudo)
			throws InstantiationException, IllegalAccessException,
			ClassNotFoundException, SQLException;

	public abstract void update(ItemConteudo itemConteudo)
			throws InstantiationException, IllegalAccessException,
			ClassNotFoundException, SQLException;
	public abstract List<ItemConteudo> getListItemConteudoPublicado(long nu_conteudo,
			Connection con) throws SQLException;
	public abstract List<ItemConteudo> getListItemConteudo(long nu_conteudo,
			Connection con) throws SQLException;

	public abstract void apagar(ItemConteudo itemConteudo)
			throws InstantiationException, IllegalAccessException,
			ClassNotFoundException, SQLException;

	public abstract List<ItemConteudo> getListItemConteudoDescPublicado(long nu_conteudo, Connection con);

	public abstract List<ItemConteudo> getListItemConteudoDescPublicado(
			long nu_conteudo, Connection con, Date dataIni, Date dataFim);

	public abstract List<ItemConteudo> getListItemConteudoPublicado(long nu_conteudo,
			Connection con, Date dataIni, Date dataFim);

	public abstract List<ItemConteudo> getListItemConteudoPublicado(
			Pagina pagina, int i);

}